Перейти к основному содержимому

11.4. Вопросы по управлению данными

Часто задаваемые вопросы Apache Ozone: Вопросы по управлению данными

В этом разделе собраны ответы на наиболее распространённые вопросы, связанные с управлением данными в Apache Ozone, включая создание и удаление томов и бакетов, репликацию, политики хранения и управление доступом к данным.


1. Как создать и управлять томами (Volumes) и бакетами (Buckets) в Ozone?

  • Создание тома: Используйте команду Ozone Shell для создания нового тома.

    bin/ozone sh volume create /volume-name
  • Создание бакета в томе: После создания тома создайте бакет для хранения данных.

    bin/ozone sh bucket create /volume-name/bucket-name
  • Просмотр томов и бакетов: Чтобы отобразить список томов или бакетов, используйте команды:

    bin/ozone sh volume list
    bin/ozone sh bucket list /volume-name
  • Удаление томов и бакетов: Том и бакет можно удалить с помощью следующих команд:

    bin/ozone sh bucket delete /volume-name/bucket-name
    bin/ozone sh volume delete /volume-name

2. Как настроить политику репликации для данных в Ozone?

Политика репликации в Ozone определяет количество копий данных (реплик), которые будут храниться на узлах DataNode для обеспечения отказоустойчивости.

  1. Настройка уровня репликации в конфигурации: Установите уровень репликации по умолчанию в ozone-site.xml, используя параметр ozone.scm.replication.factor.

    <property>
    <name>ozone.scm.replication.factor</name>
    <value>3</value> <!-- Три реплики по умолчанию -->
    </property>
  2. Изменение уровня репликации для конкретного бакета: Вы также можете задать уровень репликации для отдельных бакетов:

    bin/ozone sh bucket setreplication /volume-name/bucket-name RATIS THREE

    В данном случае используется протокол Ratis с тремя репликами.


3. Как выполнять резервное копирование и восстановление данных в Ozone?

Apache Ozone поддерживает интеграцию с системами резервного копирования, такими как AWS CLI, Rclone и Restic, через S3-интерфейс.

  • Использование AWS CLI для резервного копирования:

    aws s3 cp /local/data/path s3://ozone-bucket-name/backup-path --recursive --endpoint-url=http://s3g-host:9878
  • Восстановление данных из резервной копии:

    aws s3 cp s3://ozone-bucket-name/backup-path /local/restore/path --recursive --endpoint-url=http://s3g-host:9878

Кроме того, вы можете использовать Ozone Shell для загрузки и скачивания данных:

bin/ozone sh key put /volume-name/bucket-name/file-key /local/path/to/file
bin/ozone sh key get /volume-name/bucket-name/file-key /local/path/to/restore

4. Как управлять доступом к данным в Apache Ozone?

Ozone поддерживает управление доступом на уровне томов и бакетов.

  • Назначение владельца тома: Владелец тома имеет полный доступ к его бакетам и данным.

    bin/ozone sh volume setowner /volume-name --owner=new-owner
  • Установка ACL (списка контроля доступа): Используйте ACL для управления доступом к томам и бакетам.

    bin/ozone sh volume addacl /volume-name -u user1:r
    bin/ozone sh bucket addacl /volume-name/bucket-name -u user2:rw

    Здесь user1 получает доступ только на чтение (r), а user2 — доступ на чтение и запись (rw).

  • Удаление ACL:

    bin/ozone sh volume removeacl /volume-name -u user1
    bin/ozone sh bucket removeacl /volume-name/bucket-name -u user2

5. Как отслеживать состояние и целостность данных в Ozone?

  1. Использование Recon для мониторинга: Recon предоставляет интерфейс для отслеживания состояния кластера, включая состояние контейнеров и реплик. Запустите Recon и перейдите по адресу http://localhost:9888, чтобы получить доступ к панели мониторинга.

  2. Команда ozone admin для проверки состояния контейнеров: Используйте команду ozone admin для получения информации о контейнерах и их репликах.

    bin/ozone admin container list
  3. Отчёты о репликах: Команда ozone admin также позволяет получить информацию о недостающих и избыточных репликах, что помогает поддерживать целостность данных.

    bin/ozone admin container info <container-id>

6. Как очистить данные или освободить место в Apache Ozone?

  • Удаление ненужных ключей: Удалите файлы (ключи), чтобы освободить место в кластере.

    bin/ozone sh key delete /volume-name/bucket-name/key-name
  • Удаление бакетов и томов: Удалите пустые бакеты и тома, которые больше не нужны.

    bin/ozone sh bucket delete /volume-name/bucket-name
    bin/ozone sh volume delete /volume-name
  • Балансировка и очистка контейнеров: Используйте команду ozone admin datanode rebalance, чтобы перераспределить данные и освободить место на перегруженных узлах DataNode.


7. Как восстановить недостающие реплики данных?

Если узел DataNode выходит из строя или контейнер теряет реплики, Apache Ozone автоматически инициирует восстановление реплик. Вы также можете восстановить реплики вручную.

  • Восстановление реплик вручную: Используйте команду для восстановления недостающих реплик конкретного контейнера:

    bin/ozone admin container recover <container-id>
  • Настройка интервала восстановления: В ozone-site.xml можно настроить параметр ozone.scm.replication.wait.interval, чтобы контролировать, как часто Ozone будет проверять недостающие реплики и восстанавливать их.


8. Как настроить версии данных в бакете?

Версионирование позволяет сохранять и управлять несколькими версиями объекта в бакете. Эта функция полезна для восстановления предыдущих версий данных.

  1. Включите версионирование для бакета:

    bin/ozone sh bucket setversioning /volume-name/bucket-name true
  2. Просмотр версий объекта: Команда key list покажет все версии объекта, если версия включена.

  3. Удаление версии: Вы можете удалить определённую версию объекта, указав идентификатор версии.


9. Как восстановить данные после сбоя DataNode или выхода узлов из строя?

  1. Используйте резервные копии: Если включено резервное копирование, восстановите данные из резервной копии с помощью Ozone Shell или S3-интерфейса.

  2. Проверьте состояние контейнеров: Используйте команду ozone admin container list для проверки состояния контейнеров и реплик.

  3. Автоматическое восстановление реплик: Если контейнеры теряют реплики из-за сбоя узла, Ozone автоматически начнёт процесс восстановления. Убедитесь, что настройка ozone.scm.replication.factor соответствует нужному количеству реплик.


Эти ответы помогут вам эффективно управлять данными в Apache Ozone, включая создание и удаление томов и бакетов, настройку репликации и безопасности, а также мониторинг состояния и целостности данных.